import pytest
from onepassword_local_search.services.CryptoService import CryptoService
from onepassword_local_search.services.SecondaryCryptoService import SecondaryCryptoService
from onepassword_local_search.services.ConfigFileService import ConfigFileService
from onepassword_local_search.tests.fixtures_common import common_data, op_session, op_personal_session, op_dual_session
from onepassword_local_search.services.StorageService import StorageService
from onepassword_local_search.models.Cipher import Cipher
from onepassword_local_search.models.Item import Item
import os
from json import loads as json_loads


@pytest.mark.usefixtures("op_session")
@pytest.fixture
def crypto_service(mocker):
    return CryptoService(StorageService(), ConfigFileService(), 1)


@pytest.mark.usefixtures("op_personal_session")
@pytest.fixture
def crypto_service_personal(mocker):
    return SecondaryCryptoService(StorageService(), ConfigFileService(), 2)


@pytest.mark.usefixtures("op_dual_session")
def test_personal_session_keys(crypto_service_personal):
    crypto_service = crypto_service_personal

    crypto_service.sessionKey = crypto_service._get_session_key()
    assert crypto_service.sessionKey == common_data('personal_session_key')

    crypto_service.encryptedSessionPrivateKey = crypto_service._get_encrypted_session_key()
    assert type(crypto_service.encryptedSessionPrivateKey).__name__ == 'Cipher'
    assert crypto_service.encryptedSessionPrivateKey.iv == 'Ezo-wY3lGOBPdxBP'
    assert crypto_service.encryptedSessionPrivateKey.data == 'GRT2axfpOiG967Pf7_EMSgPgydko3FuzvTEBry6J_rvW9E1Dp9khrF8wgryBEfei1O8Sl1onyU_u68tB_ws6ux5UWVY1URu95oiMkNV0DzbhoVzITz1mWtr3la73TQjEUjTp8eDHzcjUzvaNcvLw9g-kCD6kDFul5wWzeDlLJm2AgIsaqLKycHgDSk--_c1xQiXxH2_29e0yAibcpXoVp9-Xq3oRranqPH8dEMsybA4ABGLmTKvJJ6Ssv4ALeOEdVFj9B-_V7deMbj1W14uz4f036rGXXwLFVEka6Ca0IPLewbeQFTUlo-B18JKhoSaLVMRrsz9jSokFUuGFaCFQNIs-5w'
    assert crypto_service.encryptedSessionPrivateKey.enc == 'A256GCM'

    crypto_service.sessionPrivateKey = json_loads(crypto_service.decrypt(crypto_service.sessionKey, crypto_service.encryptedSessionPrivateKey))
    assert crypto_service.sessionPrivateKey['encodedMuk'] == 'j4mKCHJyeG-O187LjWvjfYciZnKWrDZ8MjS6jhBNGnc'
    assert crypto_service.sessionPrivateKey['encodedKey'] == '-lPNvxyf2MC6yQcTysBzJzT70UnvbHFrghcYmTPbeEU'

    crypto_service.encryptedSymmetricyKey = Cipher(crypto_service._get_encrypted_symmetric_key())
    assert type(crypto_service.encryptedSymmetricyKey).__name__ == 'Cipher'
    assert crypto_service.encryptedSymmetricyKey.iv == 'tYa8RNJ7UpxA8AXW'
    assert crypto_service.encryptedSymmetricyKey.data == 'HKhbbcnYTeA3Fm1AIdHE5B5N6tkU-8JZnVEd57SPrbvy0S0WMQeupzy79Icvcx_TAgoCYhrrwX6Cxz8DmAkvWEOt85JVhOto2QSlMcQH3UOVhcdaB2jDMkkNRBENfnfV-t46bs6NRge77yD15qBHf-cXLCMeLG2HAaN9DQZM2S4GwRC5yAOYfH7Vc-txiY8dSwvLzYwZNUYvXBY-o7OVHbBQfJiS1bAsCmSKaec'
    assert crypto_service.encryptedSymmetricyKey.enc == 'A256GCM'

    crypto_service.symmetricKey = json_loads(crypto_service.decrypt(crypto_service.sessionPrivateKey['encodedMuk'], crypto_service.encryptedSymmetricyKey))
    assert crypto_service.symmetricKey['k'] == 'w5FzV9t--KgxPDFN2teXJcZ0ekxiTrjmcNlmKmiGZwI'
    assert crypto_service.symmetricKey['alg'] == 'A256GCM'

    crypto_service.encryptedAccountKey = Cipher(crypto_service._get_encrypted_account_key())
    assert crypto_service.encryptedAccountKey.enc == 'A256GCM'
    assert crypto_service.encryptedAccountKey.iv == '09d2f0xTBacV3djN'
    assert crypto_service.encryptedAccountKey.data == 'bgbmVTGji76riFuvhwHq2JNCrJLE246cFX1eZu_pmcliuX1cx-k9hfbXmn4CEIvlI1SWCJtMncEVMH7mxlD7WZBlEqA1kZYZjGfZ-cHUhOW3zxYVDRpVgWyxE-EC79bG0y4W7zb_GH7ucQctfBV1acofio9s_LbiVDFkFd7O1uofrTG3_G-R2GZlnxftC69A4DYiCOpjVukm3ylHt2aD8-hT95HR5NOt2LyDaRRlZA62lFz5XDe9E3eIkK-Kv5qJjmT9ygh40YkMbjwHncPzgXpHxiq08tISP_nL7M918o52Ev9fBo2l3HiExpkQNvUIzQvbpoWB5qQL2rYQcdHKIWFPHuDnpPv8j890uWgvxVCqEUqmpCsIWjbZO9r4wYpwp8ru1ChJpptzpf8V2A8-dBMzmP3QWt7iUsx1PMrQA7I4jb_VbbIIKsuuAKWJv32slBx90PfDoNg8A3GAKfP4kF2YH16TNoNR1GjYnYsx-4YKfQEUrVmnkELtBt51a9eT5GEnbPz2iG4mGOuAHyxtmH9VRqymPG2ivrymaptY4z14qX0TpW7zPtUoV_ej0rzPZwtfEtK8pkS-BQWnBlzobWx6cLubSRnkqLd5hykbsgBgHN33_Xty8xGmHgC2xn3HGiDZsQ'

    crypto_service.set_main_crypto_service()
    assert crypto_service.mainCryptoService.sessionKey == common_data('session_key')
    assert type(crypto_service.mainCryptoService.encryptedSessionPrivateKey).__name__ == 'Cipher'
    assert crypto_service.mainCryptoService.encryptedSessionPrivateKey.iv == 'o86o5GT5zK7xh83e'
    assert crypto_service.mainCryptoService.encryptedSessionPrivateKey.data == 'Fn3jMEhlgsniiwP0wgSUF-HUR2LHEQuIW032Oz25VokclJG9t2Tl8a8KgDHgVwgypO2hQbS_0u2xteDEON4GVV7vf4C_7UmzbWIaz5qN1PXa5_AlnmBmHiRFXoTNEQgqJqxkEDHGnCaNExkw8FenArevjwKwp2Zwr1jIL0m8YVEnROSKg8WEuuOh74EehpkmypBJ-I4PIHe-C80OwqriwK6XK_3dEat6iYzvSYKQK4MwY5eTDSZWoIvaAFs8QHBez8CiaDmzIp1fgNOiYwplf9skc9ZA0cvUc9i0AT3aQa7PBsTHEQ2srgF43sS4eFF6X66QOmsbY4UAy-JjakOmIPkthkkx5dsGIsCUO1whAzIlmnTrNYUFtA'
    assert crypto_service.mainCryptoService.encryptedSessionPrivateKey.enc == 'A256GCM'
    assert crypto_service.mainCryptoService.sessionPrivateKey['encodedMuk'] == '2Zqlkn-ppcrz0RaH3wDUiKwu1YUPj1bRM09R9MEmsrE'
    assert crypto_service.mainCryptoService.sessionPrivateKey['encodedKey'] == 'JH84cS3eNebV8P0Kck3fviRSfnOk8WMFUtiF6umWHFY'
    assert type(crypto_service.mainCryptoService.encryptedSymmetricyKey).__name__ == 'Cipher'
    assert crypto_service.mainCryptoService.encryptedSymmetricyKey.iv == 'uXAcNJaoM54-8r-M'
    assert crypto_service.mainCryptoService.encryptedSymmetricyKey.data == 'Kb69e8qtY7cPkqoG7jMjy1KfG0Il-R5FfsvrLYVJADaan6ICh4f_AUWbdD6aiRe7UvXbqwnaRX-KGfPoCBIrAbQj2ZZsYO_8jcd0RAaYLpnUMLjSgOUh5dnCiksJcDOVvwVDed6xp8LXirt631ArEUc545edlCJi4RohkplHRFdwxWa-6M1al0z0ZM6ac7koVGYYM913CYfsNp3GV7_4ccGg9AQNOJVM6vLTRKg'
    assert crypto_service.mainCryptoService.encryptedSymmetricyKey.enc == 'A256GCM'
    assert crypto_service.mainCryptoService.symmetricKey['k'] == 'DTCXfnskB1Sm8QiMA_qCWxwZ4GmWOeyAreSN8c0pRcc'
    assert crypto_service.mainCryptoService.symmetricKey['alg'] == 'A256GCM'
    assert crypto_service.mainCryptoService.encryptedAccountKey.enc == 'A256GCM'
    assert crypto_service.mainCryptoService.encryptedAccountKey.iv == 'Wfvydy9a5MebX9pk'
    assert crypto_service.mainCryptoService.encryptedAccountKey.data == 'rnU-q-u8Pgb5ZKelOpEZT0HbkjlUCRJ9NqgABLaXhjeXiK1EHOOOYO-l14XC2xr7YBDwQTmG9-kj10KI7yJenOwaR0YIYd-yBkS88_5YilTvQdObGYmnZ6N5DRNZQKQO6ZEY5nJ22QMpMAk5Rt5uwQrB0YXf9MmdJrbMrn0huig-T9GPX6_VwOwYz4WTheq-9QQZJcJRTMszhij0gnPTlKjjagn7ccbdDIJcQsup0AYwhagELZXVhMq6xFh-Sy-6G7dh4JXVWlD5BO2CQv98rD58eDLOjUJlsPsCyMt9X2IwHjaiiQ91kIU9XR5b9MD6v2tPAAOn-5Q7LoyjUXSrCqnT02bvIRGymhO5y4BU-pE7jD76GzPaZ9Lw8MzNOwbXObNR3kadIveaVWxxcf-d2UTmImI3zMoTNvpDlsG17Gl88y2hH1HNHDPZ8K8vPS3GV-N8Y1iv7UYvANigXYYN3iUu2SmtQN0JXfD2lQBlcxhX-4Jzoz1hIlsQ1IpAZ_uMrGYoWOMBJJ69Z3gO6mbLGDk_-fpZwTp82jsvEXverx2Ojan3Q3X80_WX67XSpa5ZyVRl0ipWKkaj7ERjgYo0JEdKni-HCHBdr4M0m1GgtivPGVeRg3ce0Pts7QcWRog'
    assert crypto_service.mainCryptoService.accountKey['email'] == 'dev+onepassword-local-search@dkod.fr'
    assert crypto_service.mainCryptoService.accountKey['masterUnlockKey']['k'] == '2Zqlkn-ppcrz0RaH3wDUiKwu1YUPj1bRM09R9MEmsrE'
    assert crypto_service.mainCryptoService.encryptedPrivateKey.enc == 'A256GCM'
    assert crypto_service.mainCryptoService.encryptedPrivateKey.iv == 'PKQJjGidIGatDZlC'
    assert crypto_service.mainCryptoService.encryptedPrivateKey.data == 'Co--8uAZTsy4texj_Tdyli2ENnzJVFT3vplQfQU96-Jn5GpGXiveljeG3ZbZb_snW93EoM8UIFBupMKvs67wIXbL1P8oU6FdK13ypHXkX1DMyIzvg9NXral3ImIS-0MrmzoH_KRLI-CvDXQ3bf2DXYTAA_x2Dh693rnj4Te3h5GZlM0iI-ziFbVnXSuY71QPz8c44OkjcsJx7EPQJyZuryXqwweObnG2sjA449BeUjtDR1tYId8L82oTlWFjvzWsbyOkWoLl-Dsg6Cax7CMoI4QGUVXCCzXRYWia672IhnhD0WziAi_p4abXn8Rb2hd2YwXnY4PFPWA5Esn8nn-046Ga31ibmF7LraFFV5o9kXP6MWcNjHhXjpQHeJ9ptLfl0eLMuJXnMT9Gwxwp71z5_CQaV92AU6Xg686xz5-b1ZUT7ksV6z3UqNK-i8eeOwRJ5ARJwzQRBOyR-A9oYhPwiH_flxEbWzW15hPje5zDMbT5mKQXLRB3hLPltgOcqQsBtY-3KHBWUj2y0ZueBASBYiHnWoAEkIf9u0-gAMVumf4ZHf03EcXm98qV4VCSlDM1uO1W3gNxyg8f3B8F4fmazDxYTVe4kUSVLE5qUqCGxVp-uXS1dgaDwb0T40MDtgnENHMerbSdLg7f7CdRiZtGEJk0ahU6W9LFuAkFxenEALE6-BymFMD_-Z3OYV_ivbQVaC7nwhrDMWfndlcDuZbDpRSwS75iZWs9UiWOrdA3AS6tjWVb9_n_glEYoPG6Nflf_yuAAaZGBI57DsYVSyW_OjNf_5YyYfbAW0Yaptk7r65S5DJB4cKFkbQQtFdHUONe3nQnxexXmirpbIfF97j0nRu8JdqVZsY3X1KcA-abNIq8T0fSi_GrwyMq9qa6JqNRYyrzA5Wau7sT_eSBSu2Ls9UvVRRjISK3oVBbJGhKH5nuHldYsqkGsmyfXKogkjF7PZAS4AgwGUmgLiPtsZvnjsSQdC3K8cyhNYDfmFd5_C3xgxoBEjnpwMTH5_mIo6n_0lwfM7hp-KkQiDnG03bBhauhlw5Af1BfMnFUk6mbEoX3ndSFZ3iF2ckW4QVL-unLKb0eUnjD_9dP6lht7gfgSUSaZoo9QLmLgwD1zQ4iV1bd1R8DRcpUio9lakR5lbjVdRPUcPiwkrmmdtzo1Ve0XM8TLHlo3Bfq8Dh6HYV6ANl4K25GRKCcWjT0n7_-D1qYQSeF2tZDs4IBPD_NbVNmbE_-8jK03n367E87wJ6Vw-wKcUjlB8Q2rMcqGSmp1OQMq1L5EtrXDn_WiOd2JDXaVbo1FyveNC5KVTJGFYDbDzaBkjZFFMzc_ct-uxaiMMrDEiHmwQwvUS1mX5ooi6altsNsxXs855iTAMrDC8wtZYQX8EYkskTLc9sDKYpEUNu8sqxfyd4WtW5F9Pz6KdzDaxmcnma6_SPVTnOnV7pPcyFbG8dF00YwlSPN8RoNgjnqzVoXyNTilj9mRpsnMzonME_sH3_kJ4KdUQfYyEhbtbZLRXnj1VsufB-7p22_B69qy2sKSZFuKK7pbyhHtV2fpSYQtkcgOy1RKt6YbnBc5aV3QZwtAFjVVLAtZPGLt_0J_z3wQJYRGB4q6zBnqWMKipkR-9xEkEKyaG5jy8Y7R87JtPLs_M3vRQ3gvAQmWlYEYmgAJ1wTpc-1cjZ7xgQ8T8ZVGEWYOwH9P9H1ujDsAJkokbedwWjZJbCyZTHmEBs_afaebde0nlrvcNm2CGn7kYJs9VKmME5zoryDaEx934ALKUCe7dSOqvj_498AwYW3Co_H-JPBk19EEKckYmmD86n170UNO8dZMSkqrQufRTT-aRhAVWKXc5yrK68K7MqHVLCqQaxOT78CIRbxKwZbnGLuvdpT6zgp9OJAJPV3nFx_sLWJ1-FhU5sB2Sbiy3d4CdgknXa3HolhpPGnisnqpK1IB5L5VcWHH-uzyN2JY71eiEqD7j4Pvr1flA8QvMPXpmZQl44ri3gkZGi6KpsgIJcatWPi-UfoQuXFWyOa0Kj1SbCMOFURZPZiHZQhaKNpNsQd8m7fxXZGPUAAenfyVp1APqJtk_U8iz92ib_cKqL-soFZSSZBJfV4PKbhHWat5hPwqlH7nrz6iIWc0VGXO-RTeciAWgptU30loMy10DoFj5xxAwCj-_L-gu5oO35p1W3noNJ_sF_2zgxBXIl0TRmwKInQYHdWuTPvdGMsE4p9Bsp_I7UJ7ox_yf0aq7KxMutAg6uaJIwnn5zKnfXlpu9qKUwjm7a8PVMk2MQnH8KRCMwV'
    assert crypto_service.mainCryptoService.privateKey['alg'] == 'RSA-OAEP'
    assert crypto_service.mainCryptoService.privateKey['d'] == 'AmCxuabUgIyblLBolHSHvZEh_b7PzswAJquPazw9hu6EaN__noNHFIYMYLovfZ99B58XxiuBSo-N7FPMpWGtVTKPBkR1leSp2bxtnz_M25wRquUxJ3BSWy6dNs5pahRu27irQ1b5cTNRrsCm_ew0aviC_7YgbauXgBK3SBmFXRH81Cw_5XCXmO-9Y7TIPwAnd2jThkyyiyZ9KwSyD96h8eqkn6LX_dXYRRnzlCcTzg2TYXWvtynl1S6z4vRmUKmYxmRroFrIukto5Wlq6o0F8nQ_KxvMrud8qMkatuKcaE9LpAzqXHnCsXf7E_n4UKgUCtLkTrQFIqRiJVSs7R_rQQ'

    crypto_service.accountKey = json_loads(crypto_service.decrypt(crypto_service.mainCryptoService.symmetricKey['k'], crypto_service.encryptedAccountKey))
    assert crypto_service.accountKey['email'] == 'dev+onepassword-local-search-user@dkod.fr'
    assert crypto_service.accountKey['masterUnlockKey']['k'] == 'j4mKCHJyeG-O187LjWvjfYciZnKWrDZ8MjS6jhBNGnc'

    crypto_service.encryptedPrivateKey = Cipher(crypto_service._get_encrypted_private_key())
    assert crypto_service.encryptedPrivateKey.enc == 'A256GCM'
    assert crypto_service.encryptedPrivateKey.iv == 'ZLveVKZLQPv-KB6T'
    assert crypto_service.encryptedPrivateKey.data == 'nZMdB0iqEtPng_bOYBy-Ubda34qZSBRXvyDw98TxFAeK9Ol2xcqVcScP2aWjwU9YytsrHJSzFyv_DBwCD81LpxM__a55XjtJoJg_wn6FqGn58fvOwfTToT21rrByqIQswd4RjWIEpekCukMQfXiI1z0AA2Dz8kFJM4NvBzW-QDrxad4yveKEXKcEnuNeVTqUdCjlEp1CtVMQSc6nGFeSTBc9JGOXxTtng2nMpArkifZg9daImkgDvxLbm2O1NyVqLh-IU8YKX2y83LBIUAanXDoeaqb1mOgQUPpoa3Qicp7SRW_eTTtMrujt89NLlhGBklesS1s_kKTPUcF_eBaMccZSZ6Fn7isYMAojdQ3lN98PJ9-OMknA58fImWYV-T6wzZ5PGPq5gsRvktBYqKqo5x8gAFAb1F6wynT3PVFYdQZTLVsdQbiDhVIGfX0nX-F6XbKpa7tbSY2NtMvScIW1R-J6ZIA9_FWQteWQ-PLUXqFAiAFBa0W_TGSklUPZo4BGwMvKAgNEMtmCztbStRASx4suAwdz-5XQh2DuuXZk-7WIZnJf1bVi8FeylqXkVlDtHA56wO9Nul1RUfCuyIFrxJEwjX6eMaX6ovJDa2nmR7keY6pyGEjHSGWedZO3C2I05FHYCCH3Z0bVGHAnOIrlZFpluxtGzl2ods7kw_c30m9FKWKZuMDBrwoLNnIWlEd-XWJEeOZxgwzyt71gGB5tz7DrxF4jIxqZIKiQ_ecK9H7OZqUiuWxgCrMgqeaGk6fDlicM2aNsFpdHAkNrtBrRCSsgiamS0p3BkkdQUZ4QHoommA7sU5jsf2fp-8yIoMj8b1XzEQBxu4ID86VsVwZsbV8FGm8UCe1mQhVWr_bZOaUrufT4CdQk7_TXvgxC-mt2EHB-bfh6YcxSx-0OFQPH5ymrUdAULu9v3i7hdZuhXf-XzPPmHf-z1YHmNzckIwvJkX9JqpUhL0O5VsWMWqXp23c7UZIJQpPUJBz_BkYP304nx4T_8GUN5c2ukJa0EiLsgERd6vcYGVPNp9qoS-c0GaCDYYe7RclVCyu6Z4CmwV35EM_sW-e6Cu3qvKkNVrlekPgbAtMyeC5vYhDubN0wnZZLXOKqjk9eaAkUoNBsHSifLQUG6nPPslOj4c_jMMBb9c04-ZR-3I8VvYILuTG34shf34JqILQsgSskm7HGiHnZhOvY_bqlS_gvIMHKbbSWk0-HeHLghlI6oJTvhGkkjoHPbFPy5wzSGb7hXdoqza4ZFz26Hjme12KcnvczqVn4rRHiOVdAmvGllMmkjs_g64ZxpIcd2BiY8nKreHVBMGbGkAvxd2o4a2a05OAZBpyAQQq2TeZdheQXZCef-9D5Oamq08vnjEqqe8HS8arEY_U9KoZyIdblrrVMfOhFvC9qAvMstsaQTG5LhEk_ZDlYICJWVmsLXmySFngZvUQj0if4R8K3WRzxzRPrNIZJJQxzr26YQWrIXG6KKpQ3q_PjHc1Q7wvXAT4r8jN_-quhY39W2mQS9DVN9AfXXMT46nL0Vt-A7Ao4htPzg0c555yWo-4MAyPAsCnasEIbf762JYBeWM7DYDmGBQgDXd7OzGvYv90Wi_eCvcELx9U86M631rHpvwbYhCQASNbOWRH21Ows1ACvohGWZTVs3MWv77f92vLnTj_KWBgqIsmUfn9W1MwmA2wB47TSnK62FR-nq7K2_Lc-yY2xy6wfVZbWnhm-F6tQryMg295GQ2ohfia1j61Is_toH6Sh-0motUVYAwfOxaHmImBHfZDNsPwIgkqRKK1MdmDSR_wxeP92DD7TexmH4oc5Q1p3OFgiePAeN3OG9g0yOjACSWkKBSTjhyuWE9ol-MMM53d7RKcuNedV3G9fGKqP7ry3Tqm0cFF6iHNcThISGcQ909hWT_CoLuq9Qn4xEoQiVPgKftiMXCABQdy7Ehq3h33kan-Y8daVZdiSi32P3a0wQJGPLs0FjnHo351ul7YVa1_V3QUbhQRwqIhsAvdn4leUAzuz9Ko7ac4Wq2RHXyGouoGZGHpaDKSo5CB5XuNgg5p7pAPgib_111_-PT8XvbTedPT7VqajTqaI6gL92o8_EAjf-aXNZhZdQ6RsQoLDDRL3ppUrYRo5VcpQzysNLdezYFQB2-Ucw98B2Mzp5Q-iMnFjE6PC8y_yykHhHSEIvxmk9QMsxBaTSWso3Sj47-OsOsCzirrP6ZaHLlVERLeEmae06b0GCbBjKW3YgGbja8CBJ_xPUoLDNq3hW0jFiLAM7Kl-j7JoDmGz-147'

    crypto_service.privateKey = json_loads(crypto_service.decrypt(crypto_service.symmetricKey['k'], crypto_service.encryptedPrivateKey).decode('utf-8'))
    assert crypto_service.privateKey['alg'] == 'RSA-OAEP'
    assert crypto_service.privateKey['d'] == 'XGIP8FQ8oFNft9glFdmkTvJ0rcMuAQrnM3h1aFLPx-8EL8g196VkQEb9nS2yhE7hUgSkqe50aa3DQSBq_1mcqeHYhh6rhPXfIrIs8YHmsybC5XhPQabYnaNxTyANZBkSRtlM9OY6QzZHZYtmg1XpMgJ3uSzUmHA5CSVWb88x7KY5DadCE7Qdas7ctTCgShg4chJUMrvZSP961r4g7sCL83vLiVy0RPeuK9Zd72QHDtvSuDxwAzJk1McmAbsxQsihfNesIicc04ZSf6oKPGxhqT7zU1t1cZ9FB5gutNyTfBCt-ldyNd425mkGJcvGQiYRJDvF7MN41ZfPKy-GysLQTQ'

